package ningbo.exception;

import com.sun.org.apache.bcel.internal.generic.F2D;

import java.util.InputMismatchException;
import java.util.Scanner;

/**
 * @Author 宁铂
 * @Date 2021/7/13 10:27
 * @Version 1.0
 */
public class ExceptionDemo {
    /**
     * 本类用于异常的入门案例
     */
    public static void main(String[] args) throws Exception {
        f1(); //调用暴露异常的方法
        f2(); //通过捕获处理的方法来提前解决异常
        f3(); //抛出异常
    }

    /** 创建一个抛出异常的方法  -- 交给别人解决 */
    private static void f3() throws ArithmeticException,InputMismatchException,Exception {
        System.out.println("请输入第一个整数");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请输入第二个整数");
        int b = new Scanner(System.in).nextInt();

        System.out.println(a / b);
    }

    /**
     * 捕获异常的格式
     * try{
     * 可能出现异常的代码
     * }catch(异常类型 异常名){
     * 如果捕获到异常进行处理的解决方案
     * }
     */
    private static void f2() {
        try {
            /** 输入两个数,输出除法结果 */
            System.out.println("请输入第一个整数");
            int a = new Scanner(System.in).nextInt();
            System.out.println("请输入第二个整数");
            int b = new Scanner(System.in).nextInt();

            System.out.println(a / b);
        } catch (ArithmeticException e) {
            System.out.println("除数不能为零");
        } catch (InputMismatchException e) {
            System.out.println("请输入正确的整数");
        } catch (Exception e) {
            System.out.println("请输入正确的数据");

        }
    }

        private static void f1 () {
            /** 输入两个数,输出除法结果 */
            System.out.println("请输入第一个整数");
            int a = new Scanner(System.in).nextInt();
            System.out.println("请输入第二个整数");
            int b = new Scanner(System.in).nextInt();

            System.out.println(a / b);
        }
    }

